/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlets;

import beans.Dao;
import beans.Validator;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author juli
 */
public class CreateInvitation extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        /* En este proyecto; este servlet no recibe ni debe recibir nada por GET, 
         * asi que si se lleva a entrar al servelt
         * usando el metodo GET solamente redireccion al index.jsp
         */
        response.sendRedirect("horasValidas.jsp");
    }
    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession respuesta = request.getSession(true);
        PrintWriter out = response.getWriter();
        //Declaro e inicio las variables
        String name = request.getParameter("name");
        String description = request.getParameter("description");
        String guests = request.getParameter("guests");
        String room = request.getParameter("room");
        String day = request.getParameter("day");
        String month = request.getParameter("month");
        String year = request.getParameter("year");
        String data= day+"-"+month+"-"+year;
        Dao d = new Dao();
        Validator v= new Validator();
        //campos vacios
        if(name.isEmpty() || description.isEmpty() || guests.isEmpty() ||
           room.isEmpty() || day.isEmpty() || month.isEmpty() || year.isEmpty()){
            respuesta.setAttribute("error", "Some fields are empties.");
            response.sendRedirect("createInvitation.jsp");
        } else {
             respuesta.removeAttribute("error");
             try {
               // if(!v.isDateValid(day, month, year)){
                 //   respuesta.setAttribute("error", "Date no valid.");
                  //  response.sendRedirect("createInvitation.jsp");
                //}       
                //verifico la capacidad de la sala seleccionada
                if(!v.isCapacityValid(room, guests)){
                    respuesta.setAttribute("error", "Capacity no valid: choose another room.");
                    response.sendRedirect("createInvitation.jsp");
                }
                 //Llegado a este punto significa que todo esta correcto,
                 //por lo tanto ingreso a la DB y verifico capacidad para la sala
                 //
                 d.conectar();
                 respuesta.setAttribute("error", null);
                 String orgName= respuesta.getAttribute("sessionNombre").toString();
                 Integer id_org = d.getIdOrgByName(orgName);
                 Integer id_room = d.getIdByNameRoom(room);
                 d.registerInvitation(id_org, id_room, name, description, data, guests);
                 Integer id_inv=d.getIdInv(id_org, id_room, name);
                 respuesta.setAttribute("sessionInv", id_inv);
                 response.sendRedirect("horasValidas.jsp");
                 d.desconectar();
              }catch (Exception e) { out.println("Ocurrio la sig exception: " +e); }
                        
        
    }
    }
}
